package com.example.toolproject.demo.service.serviceimpl;

import com.example.toolproject.demo.domain.LoginPageMessage;
import com.example.toolproject.demo.domain.User;
import com.example.toolproject.demo.mapper.UserMapper;
import com.example.toolproject.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @ClassName UserServiceImpl
 * @Description TODO   实现类
 * @Author lvyongwei
 * @Date 2020-06-18 16:59
 **/
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    /**
     * 执行注册操作
     *
     * @param user 用户实体
     * @return
     */
    @Override
    public boolean insertUser(User user) {
        return userMapper.insertUser(user);
    }

    /**
     * 用户登录方法
     *
     * @param user 用户实体
     * @return
     */
    @Override
    public User checkUser(User user) {
        return userMapper.checkUser(user);
    }

    /**
     * 验证用户名是否存在
     *
     * @param userName 用户名
     * @return
     */
    @Override
    public User checkUserName(String userName) {
        return userMapper.checkUserName(userName);
    }


    /**
     * 验证邮箱是否存在
     *
     * @param mail 邮箱
     * @return
     */
    @Override
    public User checkMail(String mail) {
        return userMapper.checkMail(mail);
    }

    /**
     * 修改密码
     *
     * @param user 用户实体
     * @return
     */
    @Override
    public boolean updatePassword(User user) {
        return userMapper.updatePassword(user);
    }

    /**
     * 获取所有用户信息
     *
     * @return
     */
    @Override
    public List<User> getAllUser() {
        return userMapper.getAllUser();
    }

    /**
     * 获取用户角色分布
     *
     * @return
     */
    @Override
    public LoginPageMessage getUserCount() {
        return userMapper.getUserCount();
    }

    /**
     * 游客登录插入一条游客信息
     *
     * @param user
     * @return
     */
    @Override
    public boolean insertTourists(User user) {
        return userMapper.insertTourists(user);
    }

    /**
     * 获取注册没有被审核的教师
     *
     * @return
     */
    @Override
    public List<User> getUserNoUse() {
        return userMapper.getUserNoUse();
    }

    /**
     * 删除用户
     *
     * @param userId
     * @return
     */
    @Override
    public boolean deleteUser(int userId) {
        return userMapper.deleteUser(userId);
    }

    /**
     * 根据用户id查询用户
     *
     * @param userId
     * @return
     */
    @Override
    public User getUserById(int userId) {
        return userMapper.getUserById(userId);
    }

    /**
     * 搜索用户
     *
     * @param message 搜索内容
     * @param roleId  角色id
     * @return
     */
    @Override
    public List<User> getUserByMessage(String message,Integer roleId) {
        return userMapper.getUserByMessage(message,roleId);
    }

    /**
     * 审批注册的教师
     * @param list
     * @return
     */
    @Override
    public boolean approve(List<String> list) {
        return userMapper.approve(list);
    }

    /**
     * 获取省份对应的人数
     * @return
     */
    @Override
    public List<User> getProvinceCount() {
        return userMapper.getProvinceCount();
    }

    /**
     * 获取所有的省份
     * @return
     */
    @Override
    public List<String> getAllProvince() {
        return userMapper.getAllProvince();
    }

    /**
     * 获取教师在所有省份的数量
     * @return
     */
    @Override
    public List<Object> getTeacherProvince() {
        return userMapper.getTeacherProvince();
    }

    /**
     * 获取学生所对应省份数量
     * @return
     */
    @Override
    public List<Object> getStudentProvince() {
        return userMapper.getStudentProvince();
    }

    /**
     * 获取游客所对应省份数量
     * @return
     */
    @Override
    public List<Object> getTouristProvince() {
        return userMapper.getTouristProvince();
    }

}
